<!DOCTYPE HTML PUBLIC "-//ORA//DTD CD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>[Chapter 28] 28.6 java.net.DatagramSocket (JDK 1.0)</TITLE>
<META NAME="author" CONTENT="David Flanagan">
<META NAME="date" CONTENT="Thu Jul 31 16:31:00 1997">
<META NAME="form" CONTENT="html">
<META NAME="metadata" CONTENT="dublincore.0.1">
<META NAME="objecttype" CONTENT="book part">
<META NAME="otheragent" CONTENT="gmat dbtohtml">
<META NAME="publisher" CONTENT="O'Reilly &amp; Associates, Inc.">
<META NAME="source" CONTENT="SGML">
<META NAME="subject" CONTENT="Java">
<META NAME="title" CONTENT="Java in a Nutshell">
<META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript">
</HEAD>
<body vlink="#551a8b" alink="#ff0000" text="#000000" bgcolor="#FFFFFF" link="#0000ee">

<DIV CLASS=htmlnav>
<H1><a href='index.htm'><IMG SRC="gifs/smbanner.gif"
     ALT="Java in a Nutshell" border=0></a></H1>
<table width=515 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=172 align=left valign=top><A HREF="ch28_05.htm"><IMG SRC="gifs/txtpreva.gif" ALT="Previous" border=0></A></td>
<td width=171 align=center valign=top><B><FONT FACE="ARIEL,HELVETICA,HELV,SANSERIF" SIZE="-1">Chapter 28<br>The java.net Package</FONT></B></TD>
<td width=172 align=right valign=top><A HREF="ch28_07.htm"><IMG SRC="gifs/txtnexta.gif" ALT="Next" border=0></A></td>
</tr>
</table>

&nbsp;
<hr align=left width=515>
</DIV>
<DIV CLASS=sect1>
<h2 CLASS=sect1><A CLASS="TITLE" NAME="JNUT2-CH-28-SECT-6">28.6 java.net.DatagramSocket (JDK 1.0)</A></h2>

<DIV CLASS=sect2>
<h3 CLASS=sect2><A CLASS="TITLE" NAME="JNUT2-CH-28-SECT-6.1"></A></h3>
</DIV>

<P CLASS=para>
This class defines a socket that can receive and send
unreliable datagram packets over the network using the UDP
protocol. A datagram is
a very low-level networking interface: it is simply an array
of bytes sent over the network. A datagram does not
implement any kind of stream-based communication protocol,
and there is no connection established
between the sender and the receiver. Datagram packets are
called "unreliable" because the protocol does not make any
attempt to ensure that they arrived or to resend them if
they did not. Thus, packets sent through a
<tt CLASS=literal>DatagramSocket</tt> are not guaranteed to arrive in the
order sent, or to arrive at all. On the other hand, this
low-overhead protocol makes datagram transmission very fast.

<P CLASS=para>
If a port is specified when the <tt CLASS=literal>DatagramSocket</tt> is
created, that port is used; otherwise, the system 
assigns a port. <tt CLASS=literal>getLocalPort()</tt> returns the port
number in use. <tt CLASS=literal>send()</tt> sends a
<tt CLASS=literal>DatagramPacket</tt> through the socket. The packet must
contain the destination address to which it should be sent.
<tt CLASS=literal>receive()</tt> waits for data to arrive at the socket and
stores it, along with the address of the sender, into the
specified <tt CLASS=literal>DatagramPacket</tt>. <tt CLASS=literal>close()</tt> closes
the socket and frees the port it used for reuse. Once
<tt CLASS=literal>close()</tt> has been called, the <tt CLASS=literal>DatagramSocket</tt>
should not be used again.

<P CLASS=para>
See <tt CLASS=literal>Socket</tt> and <tt CLASS=literal>URL</tt> for higher-level
interfaces to networking.

<DIV CLASS=screen>
<P>
<PRE>
public class <tt CLASS=literal>DatagramSocket</tt> extends Object {
    // <tt CLASS=literal>Public Constructors</tt>
            public <tt CLASS=literal>DatagramSocket</tt>() throws SocketException;
            public <tt CLASS=literal>DatagramSocket</tt>(int <tt CLASS=literal>port</tt>) throws SocketException;
        <b>1.1</b>public <tt CLASS=literal>DatagramSocket</tt>(int <tt CLASS=literal>port</tt>, InetAddress <tt CLASS=literal>laddr</tt>) throws SocketException;
    // <tt CLASS=literal>Public Instance Methods</tt>
            public void <tt CLASS=literal>close</tt>();
        <b>1.1</b>public InetAddress <tt CLASS=literal>getLocalAddress</tt>();
            public int <tt CLASS=literal>getLocalPort</tt>();
        <b>1.1</b>public synchronized int <tt CLASS=literal>getSoTimeout</tt>() throws SocketException;
            public synchronized void <tt CLASS=literal>receive</tt>(DatagramPacket <tt CLASS=literal>p</tt>) throws IOException;
            public void <tt CLASS=literal>send</tt>(DatagramPacket <tt CLASS=literal>p</tt>) throws IOException;
        <b>1.1</b>public synchronized void <tt CLASS=literal>setSoTimeout</tt>(int <tt CLASS=literal>timeout</tt>) throws SocketException;
}
</PRE>
</DIV>

</DIV>

<DIV CLASS=sect2>
<h3 CLASS=sect2><A CLASS="TITLE" NAME="JNUT2-CH-28-SECT-6.2">Extended By:</A></h3>

<P CLASS=para>
MulticastSocket

</DIV>

</DIV>


<DIV CLASS=htmlnav>

<P>
<HR align=left width=515>
<table width=515 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=172 align=left valign=top><A HREF="ch28_05.htm"><IMG SRC="gifs/txtpreva.gif" ALT="Previous" border=0></A></td>
<td width=171 align=center valign=top><a href="index.htm"><img src='gifs/txthome.gif' border=0 alt='Home'></a></td>
<td width=172 align=right valign=top><A HREF="ch28_07.htm"><IMG SRC="gifs/txtnexta.gif" ALT="Next" border=0></A></td>
</tr>
<tr>
<td width=172 align=left valign=top>java.net.DatagramPacket (JDK 1.0)</td>
<td width=171 align=center valign=top><a href="index/idx_0.htm"><img src='gifs/index.gif' alt='Book Index' border=0></a></td>
<td width=172 align=right valign=top>java.net.DatagramSocketImpl (JDK 1.1)</td>
</tr>
</table>
<hr align=left width=515>

<IMG SRC="gifs/smnavbar.gif" USEMAP="#map" BORDER=0> 
<MAP NAME="map"> 
<AREA SHAPE=RECT COORDS="0,0,108,15" HREF="../javanut/index.htm"
alt="Java in a Nutshell"> 
<AREA SHAPE=RECT COORDS="109,0,200,15" HREF="../langref/index.htm" 
alt="Java Language Reference"> 
<AREA SHAPE=RECT COORDS="203,0,290,15" HREF="../awt/index.htm" 
alt="Java AWT"> 
<AREA SHAPE=RECT COORDS="291,0,419,15" HREF="../fclass/index.htm" 
alt="Java Fundamental Classes"> 
<AREA SHAPE=RECT COORDS="421,0,514,15" HREF="../exp/index.htm" 
alt="Exploring Java"> 
</MAP>
</DIV>

</BODY>
</HTML>
